/*
 * KategorieConfigList.java
 *
 * Created on 5. prosinec 2006, 16:27
 *
 */

package cz.results.winter6.model;

import java.util.ArrayList;
import java.util.Iterator;

public class KategorieConfigList extends ArrayList<KategorieConfig>{
    
    /** nazev souboru pro xsl transformaci na pdf soubor */
    private String xslFilename;
    /** pocet jizd, ktere se jedou */
    private int pocetJizd;
    /** nazev spolecny pro startovku u vsech kategorii, tiskne se u kazde kategorie v zahlavi uprostred napr.: 3.CP finale*/
    private String nazev;
    
    public KategorieConfigList() {
    }

    /** pro vsechny kategorie upravi pocet struktur StartovniCasConfig, tak aby odpovidalo parametru pocetJizd */
    public void rekonfiguraceStartovnichCasu(){
        Iterator iterator = iterator();
        
        while(iterator.hasNext()){
            KategorieConfig kategorieConfig=(KategorieConfig)iterator.next();
            kategorieConfig.rekonfiguraceStartovnichCasu(getPocetJizd());
        }
    }
    
    public String getXslFilename() {
        return xslFilename;
    }

    public void setXslFilename(String xslFilename) {
        this.xslFilename = xslFilename;
    }

    public int getPocetJizd() {
        return pocetJizd;
    }

    public void setPocetJizd(int pocetJizd) {
        this.pocetJizd = pocetJizd;
        rekonfiguraceStartovnichCasu();
    }

    public String getNazev() {
        return nazev;
    }

    public void setNazev(String nazev) {
        this.nazev = nazev;
    }
    
    public String getNazevXML(){
        return "<nazevZavodu>"+getNazev()+"</nazevZavodu>";
    }
    
    
    /** vsem kategoriim (KategorieConfig) v KategorieConfigLisu nastavi stejne datum 
     toto datum se vezme KategorieConfigu, ktery je dany indexem v kategorieConfigListu */
    public void setDatumToAllIndex(int indexKategorieConfig){
        setDatumToAll(get(indexKategorieConfig).getDatum());
    }
    
    /** vsem kategoriim (KategorieConfig) v KategorieConfigLisu nastavi stejny nazev 
     toto datum se vezme KategorieConfigu, ktery je dany indexem v kategorieConfigListu */
    public void setNazevToAllIndex(int indexKategorieConfig){
        setNazevToAll(get(indexKategorieConfig).getNazev());
    }
    
    /** vsem kategoriim (KategorieConfig) v KategorieConfigLisu nastavi stejnou zkratku
     toto datum se vezme KategorieConfigu, ktery je dany indexem v kategorieConfigListu */
    public void setZkratkaToAllIndex(int indexKategorieConfig){
        setZkratkaToAll(get(indexKategorieConfig).getZkratka());
    }
    
    /** vsem kategoriim (KategorieConfig) v KategorieConfigLisu nastavi stejny filtr
     toto datum se vezme KategorieConfigu, ktery je dany indexem v kategorieConfigListu */
    public void setFiltrToAllIndex(int indexKategorieConfig){
        setFiltrToAll(get(indexKategorieConfig).getFiltr());
    }
    
    /** vsem kategoriim (KategorieConfig) v KategorieConfigLisu nastavi stejnou barvu cisel 
     toto datum se vezme KategorieConfigu, ktery je dany indexem v kategorieConfigListu */
    public void setBarvaCiselToAllIndex(int indexKategorieConfig){
        setBarvaCiselToAll(get(indexKategorieConfig).getBarvaCisel());
    }
    
    /** vsem kategoriim (KategorieConfig) v KategorieConfigLisu nastavi stejne datum 
     toto datum se vezme KategorieConfigu, ktery je dany indexem v kategorieConfigListu */
    public void setJizdaPoradiToAllIndex(int indexKategorieConfig){
        setJizdaPoradiToAll(get(indexKategorieConfig).getJizdaPoradi());
    }
    
    /** vsem kategoriim (KategorieConfig) v KategorieConfigLisu nastavi stejne datum */
    public void setDatumToAll(String datum){
        Iterator iterator = iterator();
        
        while(iterator.hasNext()){
            KategorieConfig kategorieConfig=(KategorieConfig)iterator.next();
            kategorieConfig.setDatum(datum);
        }
    }
    
    /** vsem kategoriim (KategorieConfig) v KategorieConfigLisu nastavi stejny nazev */
    public void setNazevToAll(String nazev){
        Iterator iterator = iterator();
        
        while(iterator.hasNext()){
            KategorieConfig kategorieConfig=(KategorieConfig)iterator.next();
            kategorieConfig.setNazev(nazev);
        }
    }
    
    /** vsem kategoriim (KategorieConfig) v KategorieConfigLisu nastavi stejnou zkratku */
    public void setZkratkaToAll(String zkratka){
        Iterator iterator = iterator();
        
        while(iterator.hasNext()){
            KategorieConfig kategorieConfig=(KategorieConfig)iterator.next();
            kategorieConfig.setZkratka(zkratka);
        }
    }
    
    /** vsem kategoriim (KategorieConfig) v KategorieConfigLisu nastavi stejny filtr */
    public void setFiltrToAll(Filtr filtr){
        Iterator iterator = iterator();
        
        while(iterator.hasNext()){
            KategorieConfig kategorieConfig=(KategorieConfig)iterator.next();
            kategorieConfig.setFiltr(filtr);
        }
    }
    
    /** vsem kategoriim (KategorieConfig) v KategorieConfigLisu nastavi stejnou barvu cisel */
    public void setBarvaCiselToAll(String barvaCisel){
        Iterator iterator = iterator();
        
        while(iterator.hasNext()){
            KategorieConfig kategorieConfig=(KategorieConfig)iterator.next();
            kategorieConfig.setBarvaCisel(barvaCisel);
        }
    }
    
    /** vsem kategoriim (KategorieConfig) v KategorieConfigLisu nastavi stejny nazev */
    public void setJizdaPoradiToAll(int jizdaPoradi){
        Iterator iterator = iterator();
        
        while(iterator.hasNext()){
            KategorieConfig kategorieConfig=(KategorieConfig)iterator.next();
            kategorieConfig.setJizdaPoradi(jizdaPoradi);
        }
    }
    
    /** nastavi nazevJizdy vsem kategoriim (KategorieConfig) do jizdy dane indexStartovniCasConfig
     * @param nazevJizdy hodnota, ktere se da vsem
     * @param indexStartovniCasConfig index prislusne jizdy ve poli StartovniCasConfigList */
    public void setNazevJizdyToAll(String nazevJizdy, int indexStartovniCasConfig){
        Iterator iterator = iterator();
        
        while(iterator.hasNext()){
            KategorieConfig kategorieConfig=(KategorieConfig)iterator.next();
            kategorieConfig.getStartovniCasConfigList().get(indexStartovniCasConfig).setNazevJizdy(nazevJizdy);
        }
    }
    
    /** nastavi nazevJizdy vsem kategoriim (KategorieConfig) do jizdy dane indexStartovniCasConfig
     * @param indexKategorieConfig index podle, ktereho se vybere prislusny KategorieConfig a z neho se vybere
     *        pomoci indexStartovniCasConfig prislusna hodnota, ktera bude nastavena vsem kategoriim 
     * @param indexStartovniCasConfig index prislusne jizdy ve poli StartovniCasConfigList */
    public void setNazevJizdyToAllIndex(int indexKategorieConfig, int indexStartovniCasConfig){
        setNazevJizdyToAll(get(indexKategorieConfig).getStartovniCasConfigList().get(indexStartovniCasConfig).getNazevJizdy(), indexStartovniCasConfig);
    }
            
    /** nastavi interval vsem kategoriim (KategorieConfig) do jizdy dane indexStartovniCasConfig
     * @param interval hodnota, ktere se da vsem
     * @param indexStartovniCasConfig index prislusne jizdy ve poli StartovniCasConfigList */
    public void setIntervalToAll(int interval, int indexStartovniCasConfig){
        Iterator iterator = iterator();
        
        while(iterator.hasNext()){
            KategorieConfig kategorieConfig=(KategorieConfig)iterator.next();
            kategorieConfig.getStartovniCasConfigList().get(indexStartovniCasConfig).setInterval(interval);
        }
    }
    
    /** nastavi interval vsem kategoriim (KategorieConfig) do jizdy dane indexStartovniCasConfig
     * @param indexKategorieConfig index podle, ktereho se vybere prislusny KategorieConfig a z neho se vybere
     *        pomoci indexStartovniCasConfig prislusna hodnota, ktera bude nastavena vsem kategoriim 
     * @param indexStartovniCasConfig index prislusne jizdy ve poli StartovniCasConfigList */
    public void setIntervalToAllIndex(int indexKategorieConfig, int indexStartovniCasConfig){
        setIntervalToAll(get(indexKategorieConfig).getStartovniCasConfigList().get(indexStartovniCasConfig).getInterval(), indexStartovniCasConfig);
    }
    
    /** nastavi jizdu vsem kategoriim (KategorieConfig) do jizdy dane indexStartovniCasConfig
     * @param jizda hodnota, ktere se da vsem
     * @param indexStartovniCasConfig index prislusne jizdy ve poli StartovniCasConfigList */
    public void setJizdaToAll(int jizda, int indexStartovniCasConfig){
        Iterator iterator = iterator();
        
        while(iterator.hasNext()){
            KategorieConfig kategorieConfig=(KategorieConfig)iterator.next();
            kategorieConfig.getStartovniCasConfigList().get(indexStartovniCasConfig).setJizda(jizda);
        }
    }
    
    /** nastavi jizdu vsem kategoriim (KategorieConfig) do jizdy dane indexStartovniCasConfig
     * @param indexKategorieConfig index podle, ktereho se vybere prislusny KategorieConfig a z neho se vybere
     *        pomoci indexStartovniCasConfig prislusna hodnota, ktera bude nastavena vsem kategoriim 
     * @param indexStartovniCasConfig index prislusne jizdy ve poli StartovniCasConfigList */
    public void setJizdaToAllIndex(int indexKategorieConfig, int indexStartovniCasConfig){
        setJizdaToAll(get(indexKategorieConfig).getStartovniCasConfigList().get(indexStartovniCasConfig).getJizda(), indexStartovniCasConfig);
    }
}
